<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!-- 旋转链表
    给定一个链表，旋转链表，将链表每个节点向右移动k个位置，其中k是非负数。
    输入: 1->2->3->4->5->NULL, k = 2
    输出: 4->5->1->2->3->NULL
    解释:
    向右旋转 1 步: 5->1->2->3->4->NULL
    向右旋转 2 步: 4->5->1->2->3->NULL -->

    <script>
        // 构成循环链表
        function rotateRight(head, k) {
            if (k == 0 || !head | !head.next) {
                return head
            }
            // 统计链表长度
            var n = 1;
            var cur = head;
            while (cur.next) {
                cur = cur.next;
                n++;
            }
            var add = n - k % n;
            if (add == n) {
                return head
            }
            // 环形链表
            cur.next = head;

            // 合适的位置 截断
            // 向前进 add 个位置 截断
            while (add) {
                cur = cur.next;
                add--;
            }
            var ret = cur.next;
            cur.next = null;
            return ret;

        }

    </script>

</body>

</html>